package com.cqndt.disaster.device.common.manager;

import java.util.TimerTask;
import java.util.concurrent.TimeUnit;
import com.cqndt.disaster.device.common.util.Threads;
import java.util.concurrent.ScheduledExecutorService;
import com.cqndt.disaster.device.common.component.SpringUtils;

/**
 * @author lgb
 * @date 2020年6月22日 下午3:38:02
 * Copyright (C) 深圳工勘科技
 * @说明: 异步任务管理器
 **/
public class AsyncManager {

    /** 操作延迟100毫秒 */
    private final int OPERATE_DELAY_TIME = 200;

    /** 异步操作任务调度线程池 */
    private ScheduledExecutorService executor=SpringUtils.getBean("scheduledExecutorService");

    /** 单例模式 */
    private AsyncManager() {}

    private static AsyncManager me = new AsyncManager();

    public static AsyncManager me(){
        return me;
    }

    /**
     * @param task 执行任务
     **/
    public void execute(TimerTask task) {
        executor.schedule(task,OPERATE_DELAY_TIME,TimeUnit.MILLISECONDS);
    }

    /** 停止任务线程池 */
    public void shutdown() {
        Threads.shutdownAndAwaitTermination(executor);
    }
    
}